﻿namespace Blaze.ConfigExportTool.Serialization
{
    using System;

    /// <summary>
    /// 标记指定的字段/属性为序列化的字段。
    /// </summary>
    [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
    public class DataFieldAttribute : Attribute
    {
        /// <summary>
        /// 获取或设置字段的默认值，若默认值和字段的值相同，则不会序列化该字段。
        /// </summary>
        public object DefaultValue { get; set; }

        /// <summary>
        /// 获取序列化后字段的名称。
        /// </summary>
        public string Name { get; private set; }

        /// <summary>
        /// 获取或设置字段的序列化顺序。
        /// </summary>
        public int Order { get; set; }

        public DataFieldAttribute(string name)
        {
            Name = name;
        }
    }
}